# Предварительные условия
# sudo apt update
# sudo apt install python3-pip
# pip install psycopg2-binary

import psycopg2
from psycopg2 import Error
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
import time
from datetime import datetime, timezone
import argparse

def createParser ():
    parser = argparse.ArgumentParser()
    parser.add_argument ('--ip', required=True)
    parser.add_argument ('--record_number', default=500, type=int) 
    return parser

parser = createParser()
namespace = parser.parse_args()

try:
    # Подключение к postgres и создание новой БД
    connection = psycopg2.connect(user="semyon",
                                  # пароль, который указали при установке PostgreSQL
                                  password="jw8s0F4",
                                  host=namespace.ip,
                                  database="postgres",
                                  port="5432")
    connection.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
    # Курсор для выполнения операций с базой данных
    cursor = connection.cursor()
    
    sql_create_database = 'create database mytest'
    cursor.execute(sql_create_database)
    print("Создали базу!")
    
    cursor.close()
    connection.close()
    print("Соединение с PostgreSQL закрыто")
except (Exception, Error) as error:
    print('База возможно уже есть, продолжаем')

# Подключаемся к базе mytest и заполняем таблицу
try:

    connection = psycopg2.connect(user="semyon",
                                  # пароль, который указали при установке PostgreSQL
                                  password="jw8s0F4",
                                  host=namespace.ip,
                                  database="mytest",
                                  port="5432")
    connection.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
    cursor = connection.cursor()
    
    sql_create_table = 'CREATE TABLE if not exists numbers (logdate timestamp not null, number int)'
    cursor.execute(sql_create_table)
    print("Создали таблицу!")
     

    cycles = 1
    while cycles < namespace.record_number:
        cycles = cycles + 1
        # добавляем запись в таблицу
        print('вносим запись...')
        dt = datetime.now(timezone.utc)
        cursor.execute('INSERT INTO numbers VALUES (%s, %s) ', (dt, cycles))
        time.sleep(5)



    cursor.close()
    connection.close()
    print("Соединение с PostgreSQL закрыто")
except (Exception, Error) as error:
    print("Ошибка при работе с PostgreSQL", error)